uint16_t crcRX = sbuf[len - 2] | sbuf[len - 1] << 8;
      uint16_t crcCalculate = CRC16( sbuf, len - 2 );
      if ( crcRX != crcCalculate ) {
        if ( rdORNOfull ) rdORNOfull--; // licznik kompletu danych
        sprintf( txt, ANSI_PEN_RED"\n\rCRC Error! Wyliczone %x otrzymane %x"ANSI_PEN_WHITE, crcCalculate, crcRX ); printDebug( txt );
        LedFlash( LED_R, 500 );
      }
      else {
        if ( rdORNOfull < LICZBA_PYTAN_ORNO * 2 ) rdORNOfull++;
        timeoutAskOrno = millis() + TIM_OFLINE_ORNO;
        printDebugModbus( ANSI_PEN_GREEN"\n\rCRC OK"ANSI_PEN_WHITE );
        LedFlash( LED_Y, 50 );

        if ( sbuf[1] != 3 ) {
          printDebug( ANSI_PEN_RED"\n\r Odrzucono ze wzgledu na kod funkcji."ANSI_PEN_WHITE );
          return;
        }
        if ( typOrno == 514 ) {
          switch ( nrPytaniaOrno ) {
            case 0:   // Pytanie o napiecie
              Napiecie = sbuf[3] << 8 | sbuf[4];
              sprintf( txt, "\n\rNapiecie=%d,%02d ", Napiecie / 100, Napiecie % 100  ); printDebugModbus( txt );
              break;
            case 1:   // Pytanie o prad
              Prad = sbuf[3] << 24 | sbuf[4] << 16 | sbuf[5] << 8 | sbuf[6];
              sprintf( txt, "Prad=%d,%03d ", Prad / 1000, Prad % 1000 ); printDebugModbus( txt );
              break;
            case 2:   // Pytanie o moc czynna
              MocCzynna = sbuf[3] << 24 | sbuf[4] << 16 | sbuf[5] << 8 | sbuf[6];
              sprintf( txt, "MocCzynna=%d,%03d ", MocCzynna / 1000, MocCzynna % 1000 ); printDebugModbus( txt );
              if ( MocCzynna > MAX_MOC_CZYNNA ) printDebugModbus( "\n\r********* Bzdurna moc czynna !!!!!!!!!\n\r" );
#ifndef MODBUS_HEX_ALL
              if ( MocCzynna > MAX_MOC_CZYNNA )
#endif
              {
                fl_bzdura = len;
                if ( fl_bzdura > LEN_ODP_ORNO ) fl_bzdura = LEN_ODP_ORNO;
                memcpy( BufOdpOrno, sbuf, len );    // Kopia odebranej ramki

                stModbus = MocCzynna;
              }
              break;
            case 3:   // Pytanie o moc bierna
              MocBierna = sbuf[3] << 24 | sbuf[4] << 16 | sbuf[5] << 8 | sbuf[6];
              sprintf( txt, "MocBierna=%d,%03d ", MocBierna / 1000, MocBierna % 1000 ); printDebugModbus( txt );
              break;
            case 4:   // Pytanie o PF
              WspolczynnikMocy = sbuf[3] << 8 | sbuf[4];
              sprintf( txt, "WspolczynnikMocy=%d,%03d ", WspolczynnikMocy / 1000, WspolczynnikMocy % 1000  ); printDebugModbus( txt );
              break;
            case 5:   // Pytanie o zuzyta energie czynna
              EnergiaCzynna = sbuf[3] << 24 | sbuf[4] << 16 | sbuf[5] << 8 | sbuf[6]; // Total, kolejne UINT32 to taryfy T1, T2, T3 i T4
              sprintf( txt, "EnergiaCzynnaa=%d,%03d ", EnergiaCzynna / 1000, EnergiaCzynna % 1000 ); printDebugModbus( txt );
              break;
            case 6:   // Pytanie o zuzyta energie bierna
              EnergiaBierna = sbuf[3] << 24 | sbuf[4] << 16 | sbuf[5] << 8 | sbuf[6]; // Total, kolejne UINT32 to taryfy T1, T2, T3 i T4
              sprintf( txt, "EnergiaBierna=%d,%03d ", EnergiaBierna / 1000, EnergiaBierna % 1000 ); printDebugModbus( txt );
              break;
            case 7:   // Pytanie o moc pozorna
              MocPozorna = sbuf[3] << 24 | sbuf[4] << 16 | sbuf[5] << 8 | sbuf[6];
              sprintf( txt, "MocPozorna=%d,%03d ", MocPozorna / 1000, MocPozorna % 1000 ); printDebugModbus( txt );
              break;
            case 8:   // Pytanie o czestotliwosc
              Czestotliwosc = sbuf[3] << 8 | sbuf[4];
              sprintf( txt, "Czestotliwosc=%d,%02d ", Czestotliwosc / 100, Czestotliwosc % 100 ); printDebugModbus( txt );
              break;
          }
        }
        else {
          //0 Napięcie (0,1V),
          //1 Natężenie (0,1A),
          //2 Częstotliwość (0,1Hz),
          //3 Moc czynna (1W),
          //4 Moc bierna (1var),
          //5 Moc pozorna (1VA),
          //6 Współczynnik mocy (1000),
          //7 i 8 Energia czynna (1Wh), Decimal Long - little endian
          //9 i A Energia bierna (1varh), Decimal Long - little endian

          // Rejestr 0 (buf = 0*2+3=3)
          Napiecie = sbuf[3] << 8 | sbuf[4]; Napiecie *= 10;
          sprintf( txt, "\n\rNapiecie=%d,%02d ", Napiecie / 100, Napiecie % 100  ); printDebugModbus( txt );
          // Rejestr 1 (buf = 1*2+3=5)
          Prad = sbuf[5] << 8 | sbuf[6]; Prad *= 100;
          sprintf( txt, "Prad=%d,%03d ", Prad / 1000, Prad % 1000 ); printDebugModbus( txt );
          Czestotliwosc = sbuf[7] << 8 | sbuf[8]; Czestotliwosc *= 10;
          sprintf( txt, "Czestotliwosc=%d,%02d ", Czestotliwosc / 100, Czestotliwosc % 100 ); printDebugModbus( txt );
          MocCzynna = sbuf[9] << 8 | sbuf[10];
          sprintf( txt, "MocCzynna=%d,%03d ", MocCzynna / 1000, MocCzynna % 1000 ); printDebugModbus( txt );
          MocBierna = sbuf[11] << 8 | sbuf[12];
          sprintf( txt, "MocBierna=%d,%03d ", MocBierna / 1000, MocBierna % 1000 ); printDebugModbus( txt );
          MocPozorna = sbuf[13] << 8 | sbuf[14];
          sprintf( txt, "MocPozorna=%d,%03d ", MocPozorna / 1000, MocPozorna % 1000 ); printDebugModbus( txt );
          // Rejestr 6 (buf = 6*2+3=15)
          WspolczynnikMocy = sbuf[15] << 8 | sbuf[16];
          sprintf( txt, "WspolczynnikMocy=%d,%03d ", WspolczynnikMocy / 1000, WspolczynnikMocy % 1000  ); printDebugModbus( txt );
          // Rejestr 7+8 (buf = 7*2+3=17)
          EnergiaCzynna = sbuf[17] << 24 | sbuf[18] << 16 | sbuf[19] << 8 | sbuf[20];
          sprintf( txt, "EnergiaCzynnaa=%d,%03d ", EnergiaCzynna / 1000, EnergiaCzynna % 1000 ); printDebugModbus( txt );
          // Rejestr 9+10 (buf = 9*2+3=21)
          EnergiaBierna = sbuf[21] << 24 | sbuf[22] << 16 | sbuf[23] << 8 | sbuf[24];
          sprintf( txt, "EnergiaBierna=%d,%03d ", EnergiaBierna / 1000, EnergiaBierna % 1000 ); printDebugModbus( txt );
          // SN - Rejestr 11+12 (buf = 11*2+3=25)
          // BAUD RATE - Rejestr 14 (buf = 14*2+3=31)
          // ID - Rejestr 15 (buf = 15*2+3=33)

          if ( rdORNOfull < LICZBA_PYTAN_ORNO ) rdORNOfull = LICZBA_PYTAN_ORNO;

          if ( MocCzynna > MAX_MOC_CZYNNA ) printDebugModbus( ANSI_PEN_RED"\n\r********* Bzdurna moc czynna !!!!!!!!!"ANSI_PEN_WHITE );
#ifndef MODBUS_HEX_ALL
          if ( MocCzynna > MAX_MOC_CZYNNA )
#endif
          {
            fl_bzdura = len;
            if ( fl_bzdura > LEN_ODP_ORNO ) fl_bzdura = LEN_ODP_ORNO;
            memcpy( BufOdpOrno, sbuf, len );    // Kopia odebranej ramki
          }